昨天我們完成了圖片上傳的功能,今天就將它顯示在活動列表頁面吧!
目前的 GetEvents()
是沒有取 EventsImage 資料的,這裡要補上撈取 EventsImage 的程式碼。
要注意的是,因為 Events Model 中,EventsImage 的型別是 ICollection
,所以要使用 ToList()
,用 List
來儲存回傳的資料,並賦值在 Events.EventsImage:
這邊要修正一下 Code,原本 FileStream 的第一個參數是放 FileName
,但其實應該是要放 FilePath
才對,否則上傳的圖片會儲存在專案根目錄,不會在 wwwroot:
在顯示 Events 資料的 foreach
迴圈,加入 img
的 Tag Helper,這邊我做了判斷式,雖然先前提到盡量不要在 View 寫邏輯,但目前還沒想到更好的方式,也許自製 Tag Helper 或 Partial View 可以更好?
若 EventsImage
非 Null:
src
指向 wwwroot 的 Upload 資料夾,加上圖片檔名作為路徑若 EventsImage
為 Null:
src
指定為 images
中的 logo.png 檔案,這邊我使用免費 Logo 製作網站,可以參考 Reference~將圖片尺寸指定為 500 * 300,避免圖片顯示過大導致跑版。
先前上傳圖片功能還沒做好的資料,EventsImage 為空,所以顯示了預設的 Logo 檔案;
而新建立的 Events 資料則有上傳圖片,可以看到有正常顯示圖片檔。
到今天的內容,總算是將 CRUD 的功能都完成了,明天開始會導入 ASP.NET Core Identity,為網站建立註冊、登入、權限等進階功能。
那麼我們明天見!
Free Logo Maker - Create a Logo in Seconds - Shopify